The Internet and World Wide Web (collectively the “Web”) continues to grow at a rapid pace. This growth has been, and continues to be, aided by the standardization of the vast amount of content that is available through the Web. Growth of the Web means not only that new electronic documents, i.e., markup language documents and other digital content, are being added on a daily basis, but also that existing electronic documents continue to change and evolve over time.
Presently, there is no standard way of capturing and/or representing changes that have been made to electronic documents over time within a Web-type of environment. Some available technologies facilitate the publication of different versions of a given document. Languages such as Hypertext Markup Language (HTML), Rich Site Summary (RSS) and Atom feeds, and Wikipedia, for example, facilitate the publication of different versions of documents. These technologies, however, lack the ability to explicitly illustrate the chronology of changes implemented in moving from one version of an electronic document to the next. Instead, they capture the before and after states of documents in the form of versions. In other words, these technologies do not provide a formal way of describing the “work” that produced the new or revised version of the electronic document. Accordingly, when viewing the Web at a given point in time, one is presented with a snapshot of the data as it exists at that moment, without any historical context or perspective relating to the modifications that have been made to the data over time.
Some proposed solutions for illustrating document change histories have involved the extension of existing languages. Such solutions have several disadvantages. One disadvantage is that any change data that may be specified becomes commingled with the original electronic document. This can cause the original electronic document to become bloated in size and further alters the context of the original data in the electronic document. Moreover, a system that embraces extensions must be defined for each different language that is to be “extended”. This results in the implementation of many different solutions for a single problem, i.e., one solution for each language to be extended. Still other solutions communicate change data, but lack a mechanism for persistently storing the change data in a useable form that can be used for subsequent processing or application to electronic documents.